
package net.swa.dewei.service;

import java.util.List;
import java.util.Map;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import net.swa.dewei.beans.entity.Battery;
import net.swa.dewei.beans.entity.BatteryPrice;
import net.swa.dewei.beans.vo.VoBattery;
import net.swa.util.JsonResult;

public interface BatteryService
{
    /**新增电池信息，和关系*/
    public boolean add(Battery m , Long[] ids);

    /**更新电池信息，和关系*/
    public boolean update(Battery m , Long[] ids);

    /**删除电池信息*/
    public boolean delete(Long[] ids);

    /**根据电池的id查询适应的车型关系*/
    public Battery queryById(Long id);

    /**根据车型查询适应的电池，若没有车型查询所有，但限制条数**/
    public JsonResult<Battery> queryDianchiByCheXingId(Long id);

    /**根据车型,省市县，查询适应的电池，若没有车型查询所有，但限制条数**/
    public JsonResult<Battery> queryDianchis(Long id , String province , String city , String town);

    /**根据车型,省市县，查询适应的电池，若没有车型查询所有，但限制条数**/
    public List<Battery> queryBettys(Long id , String province , String city , String town);

    /**根据列表查询分页数据***/
    public JsonResult<BatteryPrice> queryPricePage(String province , String city , String town , String pinPai ,
            String xingHao , int currentPage , int pageSize , String orderBy , String orderType);

    /**根据电池价格id 查询价格信息**/
    public BatteryPrice queryPriceById(Long id);

    /**新增电池价格数据**/
    public JsonResult<Object> saveBatteryPrice(BatteryPrice model);

    /**更新电池价格数据**/
    public JsonResult<Object> updateBatteryPrice(BatteryPrice model);

    /**删除区域价格数据*/
    public void deletePrices(Long[] ids);

    /**
     * 根据省市县车型品牌型号查询
     * 当没有省市县信息，存在车型信息时候，关联“车型电池关系表”“电池信息表”查询，状态可见
     * 当有省市县也存在车型信息时候，关联“电池价格信息表”“电池车型关系表查询”
     * 当不存在车型信息，不存在省市县，查询“电池信息表”状态可见
     * 当有省市县，不存在车型信息时候，查“电池价格表”
     * @param province
     * @param city
     * @param town
     * @param pinPai
     * @param xingHao
     * @param cxid
     * @param currentPage
     * @param pageSize
     * @param orderBy
     * @param orderType
     * @return
     */
    public JsonResult<VoBattery> queryPageByPinpXinghChex(String province , String city , String town , String pinPai ,
            String xingHao , Long cxid , int currentPage , int pageSize , String orderBy , String orderType);

    /**
     * 根据省市县车型品牌型号查询
     * 当没有省市县信息，存在车型信息时候，关联“车型电池关系表”“电池信息表”查询，状态可见
     * 当有省市县也存在车型信息时候，关联“电池价格信息表”“电池车型关系表查询”
     * 当不存在车型信息，不存在省市县，查询“电池信息表”状态可见
     * 当有省市县，不存在车型信息时候，查“电池价格表”
     * @param province
     * @param city
     * @param town
     * @param pinPai
     * @param xingHao
     * @param cxid
     * @param currentPage
     * @param pageSize
     * @param orderBy
     * @param orderType
     * @return
     */
    public JsonResult<VoBattery> queryPageByPinpXinghChex2(String province , String city , String town , String pinPai ,
            String xingHao , Long cxid , int currentPage , int pageSize , String orderBy , String orderType);

    public Battery queryBettyById(Long dianchiId , String province , String city , String town);

    public HSSFWorkbook exportExcel(String province , String city , String town , String pinPai , String xingHao);

    public Map<String, Object> addExcel(String path,String errFilePath);
}